Translated view navigation for visualizations

ABSTRACT

Among other things, one or more techniques and/or systems are provided for defining transition zones for navigating a visualization. The visualization may be constructed from geometry of a scene and one or more texture images depicted the scene from various viewpoints. A transition zone may correspond to portions of the visualization that do not have a one-to-one correspondence with a single texture image, but are generated from textured geometry (e.g., a projection of texture imagery onto the geometry). Because a translated view may have visual error (e.g., a portion of the translated view is not correctly represented by the textured geometry), one or more transition zones, specifying translated view experiences (e.g., unrestricted view navigation, restricted view navigation, etc.), may be defined. For example, a snapback force may be applied when a current view corresponds to a transition zone having a relatively higher error.

BACKGROUND

Many users may create image data using various devices, such as digitalcameras, tablets, mobile devices, smart phones, etc. For example, a usermay capture an image of a beach using a mobile phone while on vacation.The user may upload the image to an image sharing website, and may sharethe image with other users. In an example of image data, one or moreimages may be used (e.g., stitched together) to generate a visualizationof a scene depicted by the one or more images. In one example, thevisualization may comprise a panorama, a spin-movie, a multi-dimensionalrendering, etc. A visualization interface, such as an immersive viewer,may allow a user to visually navigate within the visualization toexplore the scene represented by the visualization.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Among other things one or more systems and/or techniques for definingtransition zones for navigating a visualization of a scene are providedherein. That is, a visualization may be constructed from one or moretexture images depicting a scene from various viewpoints (e.g., apanorama visualization of a renovated basement may be stitched togetherfrom one or more images depicting the renovated basement from variousviewpoints). In an example, during navigation within the visualization,a current view of the scene may be derived from a single texture image(e.g., where the texture image depicts the entire current view). Inanother example, a current view of the scene may be derived frommultiple texture images (e.g., a first texture image, depicting a firstportion of the current view, and a second texture image, depicting asecond portion of the current view, may be projected onto a geometry tocreate textured geometry representing the scene, such that a currentview may be derived from the textured geometry). A geometry may comprisea multi-dimensional representation of a surface of the scene or aportion thereof. In an example, respective texture images of the scenemay have corresponding geometry (e.g., a first texture image has a firstlocal geometry, a second texture image has a second local geometry,etc.), and the scene may be represented by a geometry (e.g., a globalgeometry derived from at least one local geometry). In another example,one or more texture images may share a geometry (e.g., a first textureimage and a second texture image may share a first local geometryderived by a stereo matching technique).

In an example, a user may have the ability to “look around” and/orexplore the renovated basement by navigating within the visualization.One or more transition zones may be defined for visually navigating thevisualization. For example, a first texture image and a second textureimage are projected onto a geometry of a scene (e.g., a local geometryof a portion of the scene depicted by the first and second textureimages) to create a textured geometry of the scene. A transition spacemay be derived from the textured geometry. The transition space maycorrespond to transitional navigation of the scene between the firsttexture image and the second texture image (e.g., a current view of thescene that does not have a one-to-one correspondence with a singletexture image, but is derived from multiple texture images). In anexample where a first texture image depicts a gaming area and a sittingarea of the renovated basement and a second texture image depicts thesitting area and a hallway area of the renovated basement, a transitionspace may correspond to a current view that comprises half of the someof the gaming area, the entire sitting area, and some of the hallwayarea. Thus, the current view may correspond to a translated view derivedfrom the first texture image and the second texture image.

An error basin may be determined for the transition space based upon avisual error measurement. For example, an inaccurate geometrymeasurement, a resolution fallout measurement, a pixel occlusionmeasure, a color different measurement, and/or other measurements orimage features may be used to identify the visual error measurement. Theerror basin may correspond to error estimations that visual errors mayarise when displaying a current view based upon geometry and/or textureinformation within the transition space. The error basin may be used todefine one or more transitional zones for navigating the visualization.In an example, a first transition zone is defined within the transitionspace based upon one or more first translated views being below an errorthreshold within the error basin. The first transition zone may specifya first translated view experience for the one or more first translatedviews. For example, a user may be allowed to freely navigate between theone or more first translated views because such views may be generatedwith relatively lower error (e.g., relatively low pixel occlusion,relatively low resolution fallout, etc.). In another example, a secondtransition zone is defined within the transition space based upon one ormore second translated views being above the error threshold within theerror basin. The second transition zone may specify a second translatedview experience for the one or more second translated views. Forexample, a user may have restricted navigation between the one or moresecond translated views because such views may be generated withrelatively higher error (e.g., a current view may be transitioned backto the first transition zone during a navigation pause). In this way, aninteractive navigation experience of the scene (e.g., represented by thevisualization) may be provided. During navigation within thevisualization, the user experience may be dynamically defined based uponsuch transition zones.

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating an exemplary method of definingtransition zones for navigating a visualization.

FIG. 2A is an illustration of an example of a first texture image and asecond texture image depicting a scene.

FIG. 2B is a component block diagram illustrating an exemplary systemfor defining transition zones for navigating a visualization.

FIG. 3A is an illustration of an example of a first graph.

FIG. 3B is an illustration of an example of a second graph.

FIG. 3C is an illustration of an example of a third graph.

FIG. 4 is an illustration of an example of unrestricted navigationmovement for a current view of a visualization.

FIG. 5 is an illustration of an example of unrestricted navigationmovement for one or more first translated views of a visualization.

FIG. 6 is an illustration of an example of restricted navigationmovement for one or more second translated views of a visualization.

FIG. 7 is a component block diagram illustrating an exemplary system forgenerating a confidence mask and/or for generating a color relationship.

FIG. 8 is a flow diagram illustrating an exemplary method of filling anuntextured visualization portion of a visualization.

FIG. 9 is an illustration of an exemplary computing device-readablemedium wherein processor-executable instructions configured to embodyone or more of the provisions set forth herein may be comprised.

FIG. 10 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are generally used to refer tolike elements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providean understanding of the claimed subject matter. It may be evident,however, that the claimed subject matter may be practiced without thesespecific details. In other instances, structures and devices areillustrated in block diagram form in order to facilitate describing theclaimed subject matter.

An embodiment of defining transition zones for navigating avisualization is illustrated by an exemplary method 100 of FIG. 1. At102, the method starts. In an example, a visualization interface maygenerate a visualization by rendering a scene using imagery (e.g.,texture images depicting a scene of a renovated kitchen from variousviewpoints) and geometry (e.g., a representation of a multi-dimensionalsurface of the scene). The geometry may comprise global geometry (e.g.,a representation of the entire scene as viewed by texture imagesdepicting the scene) or local geometry (e.g., a representation of aportion of the scene, which may correspond to portions of the sceneviewed by one or more texture images). The visualization interface mayallow a user to navigate within the visualization to explore the scene(e.g., a user may navigate around the visualization in three-dimensionsto see various views of the scene). In an example, a current view,provided by the visualization interface, may correspond to a singletexture image, such that the current view is derived from the singletexture image (e.g., the current view and the single texture image havea one-to-one correspondence). In another example, a current view maycorrespond to a view that is not entirely depicted by a single textureimage, and thus one or more texture images may be projected onto ageometry to create textured geometry that may be used to derive thecurrent view (e.g., a first portion of the current view is depicted by afirst texture image and a second portion of the current view is depictedby a second texture image). A lack of image data, inaccurate geometry,moving objects within the scene during image capture, and/or otherissues can result in a relatively unsatisfactory user experience whennavigating the visualization (e.g., seam lines, resolution fallout,blurring, etc. may occur when a current view corresponds to texturedgeometry as opposed to a single texture image).

Accordingly, one or more transition zones for navigating thevisualization may be defined. A transition zone may specify a translatedview experience that may define how a user may navigate within thevisualization (e.g., navigation may be relatively restricted when acurrent view is derived from a transition zone having a relativelyhigher error, which may otherwise result in poor visual quality for thecurrent view). At 104, a first texture image and a second texture image(e.g., a panorama image, a photo image, a computer generated image, anorthographic image from an aerial viewpoint, etc.) are projected onto ageometry of a scene to create textured geometry of the scene (e.g.,projected onto a global geometry or a local geometry shared by the firsttexture image and the second texture image). For example, the geometrymay correspond to a multi-dimensional surface of a renovated kitchen.The first texture image, the second texture image, and/or other textureimages may depict the renovated kitchen from various views. Because thegeometry may initially lack texture information, such as colorinformation, the first texture image and the second texture image may beprojected onto the geometry to texture the geometry (e.g., assign colorvalues to geometry pixels of the geometry). In an example, the texturedgeometry may be used to generate a current view of the scene representedby the textured geometry (e.g., the first texture image may depict afirst portion of the current view and the second texture image maydepict a second portion of the current view, such that the current viewcan be constructed from the projection of both the first texture imageand the second texture image onto the geometry).

At 106, an error basin for a transition space between the first textureimage and the second texture image may be determined based upon a visualerror measurement. The error basin may correspond to estimated errorthat may occur when generating translated views between the firsttexture image and the second texture image (e.g., a translated view thatis derived from the textured geometry as opposed to a single textureimage). In an example, the error basin may be derived from imagefeatures extracted from the first texture image and/or the secondtexture image. In another example, the error basin may be derived froman inaccurate geometry measurement (e.g., the textured geometry used tocreate the translated view may have inaccuracies based upon a lack ofdimensional information used to construct the geometry), a resolutionfallout measurement (e.g., areas of relatively low resolution due to alack of data), a pixel occlusion measurement (e.g., a geometry pixel ofthe geometry may not be depicted by either the first texture image orthe second texture image, and thus the geometry pixel may not have anaccurate color value), a color difference measurement (e.g., the firsttexture image may provide a first color for a region of the scene basedupon a person standing in that region, while the second texture imagemay provide a second color for the region based upon the person havingmoved out of the region), or other visual error measurements.

In an example, the error basin may indicate that translated views thatare relatively close to the first texture image or the second textureimage may have relatively lower error. For example where the firsttexture image depicts a northern wall of a renovated kitchen, atranslated view, corresponding to a slightly offset view of the northernwall, may have a relatively lower visual error because the first textureimage may adequately depict the slightly offset view of the northernwall. In another example, the error basin may specify that translatedviews that are relatively further away from the first texture image andthe second texture image may have relatively higher error. For examplewhere the first texture image depicts the northern wall and the secondtexture image depicts a southern wall, a translated view, correspondingto an eastern wall, may have a relatively higher visual error becausethe eastern wall may not be adequately depicted by the first textureimage and/or the second texture image.

In some embodiments, a graph may be generated (e.g., FIGS. 3A-3C). Thegraph may represent one or more texture images available to texture thegeometry, and may be navigated when generating a current view to displaythrough the visualization interface. For example, the graph comprises afirst node representing the first texture image, a second noderepresenting the second texture image, and/or other nodes representingother texture images. In an example, when a current view corresponds tothe first node, then the current view is generated based upon the firsttexture image. The graph may comprise a transitional edge between thefirst node and the second node. The transitional edge may correspond tothe transition space between the first texture image and the secondtexture image (e.g., points along the transitional edge may correspondto translated views derived from the textured geometry textured by thefirst texture image and/or the second texture image). In an example ofdetermining the error basin, a first image feature of a first renderedview (e.g., derived from the textured geometry) of the scene at a firstpoint along the transitional edge may be obtained. A second imagefeature of a second rendered view (e.g., derived from the texturedgeometry) of the scene at a second point along the transitional edge maybe obtained. A visual error measurement may be determined based uponcomparing the first image feature of the first rendered view to thesecond image feature of the second rendered view (e.g., a colorsimilarity comparison).

One or more transition zones within the transition space may be defined.It may be appreciated that in one example, the transition space maycorrespond to a multi-dimensional space that may represent translatedviews between a plurality of texture images, and that merely atransitional space between the first texture image and the secondtexture image is described for simplicity. At 108, a first transitionzone may be defined within the transition space based upon one or morefirst translated views being below an error threshold within the errorbasin. The first transition zone may define a first translated viewexperience for the one or more first translated views (e.g., a user mayfreely navigate within the one or more first translated views throughthe visualization using unrestricted navigation movement). In anexample, a first translated view may correspond to a stove area of therenovated kitchen. The first translated view may have a relatively lowererror within the error basin because the first texture image depicts asubstantial portion of the stove area, and thus the first translatedview may be accurately generated from the first texture image and/orother texture images (e.g., the textured geometry).

At 110, a second transition zone may be defined within the transitionspace based upon one or more second translated views being above theerror threshold within the error basin. The second transition zone maydefine a second translated view experience for the one or more secondtranslated views. The second translated view experience may specifyrestricted navigation movement for the one or more second translatedviews within the second transition zone. In an example, the restrictednavigation movement may correspond to a snapback force from a currentview position to a current view derived from at least one of the firsttexture image, the second texture image, or the first transition zone.For example, the user may attempt to navigate the visualization towardsa ceiling of the renovated kitchen, which may be derived from a secondtranslated view within the second transition zone. When a user pausesnavigational movement, a snapback force (e.g., a subtle transitionalpull) may be applied to transition the current view from the ceilingtowards an area depicted by a texture image (e.g., the stove areadepicted by the first texture image) or the first transitional zone. Inthis way, an interactive navigation experience of the scene, through thevisualization, may be provided by one or more current views (e.g., aview of the scene currently provided by the visualization interface),such that navigation within the visualization may be defined based uponone or more transition zones. At 112, the method ends.

FIG. 2A illustrates an example 200 of a first texture image 204 and asecond texture image 206 depicting a scene 202. In an example, the scene202 corresponds to an outdoor location comprising a building, a cloud, asun, a tree, and a road. The first texture image 204 of the scene 202may be captured from a first viewpoint. For example, a first camera 201may capture a photo depicting the cloud, the sun, the tree, and aportion of the building. The second texture image 206 of the scene 202may be captured from a second viewpoint. For example, a second camera203 (e.g., which may be the first camera moved to a different location)may capture a photo depicting the entire scene 202. The first textureimage 204, the second texture image 206, and/or other texture images maybe used to create a visualization comprising a multi-dimensionalrepresentation of the scene 202 that may be navigated in multipledimensions (e.g., a user may interact with the visualization to explorethe scene 202 in three-dimensional space).

FIG. 2B illustrates an example of a system 250 configured for definingtransition zones for navigating a visualization 276. The system 200 maycomprise an error estimation component 258 and/or a zone definitioncomponent 274. In an example, a geometry 252 may comprise amulti-dimensional representation of a surface of a scene, such as thescene 202 illustrated in a FIG. 2A. One or more textured images may beused to texture (e.g., assign color values to geometry pixels) thegeometry 252 to create textured geometry. The textured geometry may beused to create one or more current views of a visualization representingthe scene 202. For example, a first texture image 204 may depict thescene 202 from a first viewpoint, and a second texture image 206 maydepict the scene from a second viewpoint. A current view of the scene202 (e.g., viewed through the visualization 276) may directly correspondto the first texture image 204 (e.g., a current view of a cloud, a sun,a tree, and a portion of a building), directly correspond to the secondtexture image 206 (e.g., a current view of the cloud, the sun, the tree,and a rooftop and a couple of side portions of the building), or maycorrespond to a translated view derived from the textured geometry.Because the translated view may not directly correspond to a singletexture image, the translated view may have a degree of visual errorwhen displayed to a user. Accordingly, navigation between one or moretranslated views may be defined based upon one or more transition zonesdefined based upon an error basin 272.

The error estimation component 258 may be configured to determine theerror basin 272 for a transition space between the first texture image204 and the second texture image 206. In particular, the errorestimation component 258 is configured to project the first textureimage 204 and the second texture image 206 onto the geometry 252 tocreate textured geometry. The transition space may correspond to aportion of the textured geometry that is not entirely depicted by eitherthe first texture image 204 nor entirely depicted by the second textureimage 206. The error estimate component 258 may determine the errorbasin 272 for the transition space based upon a visual error measurement(e.g., a visual error between features of translated views between thefirst texture image and the second texture image; an accurate geometrymeasurement; a resolution fallout measurement; a pixel occlusionmeasurement; a color difference measurement; etc.).

The zone definition component 274 may be configured to define one ormore transition zones for navigating the visualization 276 based uponthe error basin 272, as illustrated in example 200 of FIG. 2A. It may beappreciated that in one example, navigation of the visualization 276 maycorrespond to multi-dimensional navigation, such as three-dimensionalnavigation, and that merely one-dimensional and/or two-dimensionalnavigation are illustrated for simplicity. It may be appreciated that inone example, a transition zone may represent multi-dimensionalnavigation, such as three-dimensional navigation within thevisualization 276, and that merely a two-dimensional transition zone isillustrated for simplicity. In an example, the zone definition component274 may define a first transition zone 266 within which a virtual camera210 may transition through the scene as a rendering viewpoint togenerate one or more current views of the scene. The first transitionzone 266 may be defined based upon one or more first translated viewsbeing below an error threshold within the error basin 272 (e.g., a firsttranslated view of the cloud, the tree, the sun, and the building (e.g.,where a first side 207 of the building was facing the first camera 201and the second camera 203 that respectively acquired the first textureimage 204 and the second texture image 206) may have a relatively lowervisual error because both the first texture image 204 and the secondtexture image 206 depict the first translated view). The firsttransition zone 266 may specify a first translated view experience(e.g., unrestricted multi-dimensional navigation movement (e.g., as‘viewed’ through virtual camera 210)). For example, a user may freelynavigate and/or pause within the first transition zone 266 whileexploring the visualization 276.

The zone definition component 274 may define a second transition zone264 within which the virtual camera 210 may transition through the sceneas a rendering viewpoint to generate one or more current views of thescene. The second transition zone 264 may be defined based upon one ormore second translated views being above the error threshold within theerror basin 272 (e.g., a second translated view comprising a second side209 of the building may have a relatively higher visual error becausethe second side 209 of the building is merely depicted by the secondtexture image 206 and/or was not directly facing the second camera 203that acquired the second texture image 206). The second transition zone264 may specify a second translated view experience (e.g., restrictedmulti-dimensional navigation movement). For example, a user may navigatewithin the second transition zone 264. However, responsive to anavigation pause, a current view position within the second transitionzone 264 may be transitioned back to a current view associated with thefirst texture image 204, the second texture image 206, and/or the firsttransition zone 266. It will be appreciated that the zone definitioncomponent 274 may define one or more additional transition zones, suchas a third transition zone 262 defining a third translated viewexperience (e.g., a snapback force may be applied during activenavigation and/or a navigation pause (e.g., a ‘view’ through virtualcamera 210 may be not be available)). In an example, the thirdtransition zone may be associated with a relatively strong snapbackforce, for example, because a backside of the building is merelydepicted by the second texture image 206 and/or there may be arelatively sparse amount of data available for the backside of thebuilding because the backside of the building may be materially occludedby the first side 207 of the building when the second texture image 206was acquired by the second camera 203 (e.g., given the orientation ofthe second camera 203 to the building when the second texture image 206was acquired). Accordingly, there may be a relatively high degree oferror associated with the third transition zone 262 as interpolation,filling, etc. may be employed to populate the third transition zone 262.Given the relatively high degree of error, sparse data available and/orlimited user experience resulting therefrom in the third transition zone262, user navigation within the third transition zone 262 may besubstantially constrained, for example.

FIGS. 3A-3C illustrate examples of graphs generated by a graph component302. In some embodiments, the graph component 302 is configured togenerate a first graph 304 based upon one or more texture imagesdepicting a scene from various viewpoints, as illustrated by example 300of FIG. 3A. The first graph 304 comprises one or more nodes (e.g., afirst node, a second node, a third node, and a fourth node) connected byone or more transitional edges. A node represents a texture image, and atransitional edge represents transition space between two textureimages. Because the one or more nodes do not overlap (e.g., a firsttexture image, represented by the first node, depicts a first portion ofa scene that does not overlap with a second portion of the scenedepicted by a second texture image represented by the second node),transitional space along the one or more transitional edges may haverelatively higher error (e.g., error resulting from occlusion becauseportions of the scene are not depicted by the one or more textureimages). Thus, an error basin may have relatively higher error estimatesfor transitional space corresponding to the non-overlapping portions.

In some embodiments, the graph component 302 is configured to generate asecond graph 334 based upon one or more texture images depicting a scenefrom various viewpoints, as illustrated by example 330 of FIG. 3B. Thesecond graph 334 comprises one or more nodes connected by one or moretransitional edges, where a node represents a texture image. Because atleast some of the nodes overlap (e.g., a first texture image depicts astove area and a refrigerator area of a renovated kitchen, and a secondtexture image depicts the stove area and an island area of the renovatedkitchen), transitional space corresponding to overlapping portions mayhave relatively lower error because multiple texture images may depictportions of the scene. Transitional space corresponding tonon-overlapping portions 336 may have relatively higher error becausesome portions of the scene may not be depicted or may be merely depictedby a single texture image. Thus, an error basin may have relativelyhigher error estimates for transitional space corresponding tonon-overlapping portions 336 and relatively lower error estimates fortransitional space corresponding to overlapping portions.

In some embodiments, the graph component 302 is configured to generate athird graph 364 based upon one or more texture images depicting a scenefrom various viewpoints, as illustrated by example 360 of FIG. 3C. Thethird graph 336 comprises one or more nodes connected by one or moretransitional edges, where a node represents a texture image. Because theone or more nodes overlap, transitional space along the one or moretransitional edges may have relatively lower error because multipletexture images may depict portions of the scene. Thus, an error basinmay have relatively lower error estimates for transitional spacecorresponding to the overlapping portions.

FIG. 4 illustrates an example 400 of unrestricted navigation movementfor a current view of a visualization. In an example, the visualizationcorresponds to a visualization 276 of a scene depicting a building andoutdoor space, as illustrated in example 250 of FIG. 2B. Thevisualization 276 may have been derived from one or more texture images,such as a first texture image 204 and a second texture image 206 of FIG.2B. In an example, a user may navigate to a current view 402 depicting acloud and a portion of a sun. The current view 402 may correspond to thefirst texture image 204 of the scene. Because the current view 402corresponds to the first texture image 204, the user may be allowed tofreely navigate from the current view 402 to a new view that alsocorresponds to the first texture image 204 without a snapback forceand/or other restrictions.

FIG. 5 illustrates an example 500 of unrestricted navigation movementfor one or more first translated views of a visualization. In anexample, the visualization corresponds to a visualization 276 of a scenedepicting a building and outdoor space, as illustrated in example 250 ofFIG. 2B. One or more transition zones may have been defined for atransition space of the visualization 276. For example, a firsttransition zone 266 may specify that a first transition view experience,such as unrestricted navigation movement, is to be used when a usernavigates within the first transition zone 266. For example, a user maynavigate to a current view 502 depicting a tree and a street from anorthwestern facing viewpoint. The current view 502 may correspond to atranslated view within the first transition zone 266. For example, thefirst texture image 204 may depict the tree from a northern facingviewpoint and the second texture image 206 may depict the tree from anwestern facing viewpoint, such that both the first texture image 204 andthe second texture image 206 are used to create the current view 502depicting the tree from the northwestern facing viewpoint (e.g., thefirst texture image 204 and the second texture image 206 may beprojected onto a geometry representing a three-dimensional surface ofthe tree). Because the current view 502 is within the first transitionzone 266, the user may be allowed to freely navigate from the currentview 502 to a new view within the first transition zone 266 without asnapback force and/or other restrictions.

FIG. 6 illustrates an example 600 of restricted navigation movement forone or more second translated views of a visualization. In an example,the visualization corresponds to a visualization 276 of a scenedepicting a building and outdoor space, as illustrated in example 250 ofFIG. 2B. One or more transition zones may have been defined for atransition space of the visualization 276. For example, a secondtransition zone 264 may specify that a second transition viewexperience, such as restricted navigation movement (e.g., a snapbackforce and/or other view movement restrictions may be applied duringnavigation and/or during a navigation pause), is to be used when a usernavigates within the second transition zone 264. For example, a user maynavigate to a current view 602 depicting a building. The current view602 may correspond to a translated view within the second transitionzone 264. Because the current view 602 is within the second transitionzone 264, the user may be allowed to navigate within the secondtransition zone 264. Responsive to a navigation pause, a snapback forcemay “pull” the current view 602 to a new view (e.g., a viewcorresponding to a first transition zone 266 or a view derived from atexture image). That is, the user may visually explore the scene withinthe second transition zone 264, but when the user pauses on a particularview, the snapback force may translate the view to a new viewcorresponding to a first texture image 204, a second texture image 206,or the first transition zone 266 of FIG. 2B. It will be appreciated thatnavigation movement may be even further constrained in a transition zonecorresponding to third transition zone 262 as illustrated in FIG. 2B,for example.

FIG. 7 illustrates an example of a system 700 configured for generatinga confidence mask and/or for generating a color relationship. The system700 comprises a color model component 706 and/or a confidence maskcomponent 710. The color model component 706 may be configured togenerate a first color model 707 for a day texture image 702 depicting ascene during daylight hours (e.g., the day texture image 702 may depicta cloud and a relatively well light view of a building and street). Thecolor model component 706 may be configured to generate a second colormodel 708 for a night texture image 704 depicting the scene duringnighttime hours (e.g., the night texture image 704 may depict a shadowybuilding and street). The color model component 706 may be configured toestablish a color relationship 709 between the day texture image 702 andthe night texture image 704 based upon the first color model 707 and thesecond color model 708. The color model component 706 may be configuredto blend color from the first texture image 702 and/or the secondtexture image 704 to create a current translated view of the scene. Thecurrent translated view may be displayed through a visualizationinterface.

The confidence mask component 710 may be configured to generate aconfidence mask comprising one or more pixel confidences. In an example,the confidence mask is generated based upon image features, inaccurategeometry measurements, resolution fallout measurements, pixel occlusionmeasurements, color difference measurements, and/or other imageinformation. In an example, a first pixel confidence may be generatedfor a first geometry pixel of a geometry representing amulti-dimensional surface of a scene. The first pixel confidence mayspecify a confidence that an object (e.g., a portion of a cloudcorresponding to the first geometry pixel) is represented in both afirst texture image 702 and a second texture image 704. Responsive tothe first pixel confidence being below a confidence threshold, theconfidence mask component 710 may determine that the first geometrypixel corresponds to a transient occluder 712 (e.g., the cloud may bepresent in the first texture image 702, but not in the second textureimage 704). In an example, the confidence mask component 710 may modifythe first geometry pixel based upon a blending technique, an inpainttechnique, a shading technique, a fadeout technique, and/or othertechniques to compensate for the transient occluder 712.

An embodiment of filling an untextured visualization portion of avisualization is illustrated by an exemplary method 800 of FIG. 8. At802, the method starts. At 804, one or more texture images may beprojected onto a geometry a scene to create a textured geometry of thescene. For example, the geometry may represent a multi-dimensionalsurface of the scene depicted by the one or more texture images. The oneor more texture images may be projected onto the geometry to assigntexture, such as color values, to geometry pixels of the geometry.Because the one or more texture images may not depict every portion ofthe scene (e.g., a rooftop of a building may not be depicted or “seenby” by one or more textured images depicting the building and an outdoorspace), the textured geometry may comprise an untextured geometryportion that is not depicted by at least one texture image.

At 806, a visualization of the scene may be generated based upon thetextured geometry. The visualization may comprise an untexturedvisualization portion corresponding to the untextured geometry portion(e.g., the untextured visualization portion may correspond to a portionof the scene for which relatively minimal to no image data isavailable). At 808, the untextured visualization portion may be filled(e.g., textured or inpainted). In an example, low resolution imagery,depicting the portion of the scene corresponding to the unexturedvisualization portion, may be used to inpaint the untexturedvisualization portion with relatively low resolution image information.In another example, a neighboring pixel region may be expanded tovisually cover at least a portion of the untextured visualizationportion (e.g., multiple neighboring pixel regions may be expanded tovisually cover all or substantially all of the untextured visualizationportion). In another example, a circular (e.g., or other shaped) imagetransition window may be displayed (e.g., to visually cover at least aportion of the untextured visualization portion). The circular imagetransition window may be configured to transition a current view of thescene to a texture image (e.g., a texture image depicting theneighboring pixel region). In one example, the circular image transitionwindow may be displayed while the visualization is in an overview mode(e.g., a zoomed out state). In another example, the circular imagetransition window may be displayed during other modes, such as regularviewing modes, to indicate where additional imagery of the scene (e.g.,the texture image) may be available (e.g., a user may be able to jumpfrom a first street side bubble to a second street side bubble utilizingthe circular image transition window).

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to implement one or more ofthe techniques presented herein. An example embodiment of acomputer-readable medium or a computer-readable device that is devisedin these ways is illustrated in FIG. 9, wherein the implementation 900comprises a computer-readable medium 908, such as a CD-R, DVD-R, flashdrive, a platter of a hard disk drive, etc., on which is encodedcomputer-readable data 906. This computer-readable data 906, such asbinary data comprising at least one of a zero or a one, in turncomprises a set of computer instructions 904 configured to operateaccording to one or more of the principles set forth herein. In someembodiments, the processor-executable computer instructions 904 areconfigured to perform a method 902, such as at least some of theexemplary method 100 of FIG. 1, for example. In some embodiments, theprocessor-executable instructions 904 are configured to implement asystem, such as at least some of the exemplary system 250 of FIG. 2Band/or at least some of the exemplary system 700 of FIG. 7, for example.Many such computer-readable media are devised by those of ordinary skillin the art that are configured to operate in accordance with thetechniques presented herein.

As used in this application, the terms “component”, “module,” “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentincludes a process running on a processor, a processor, an object, anexecutable, a thread of execution, a program, or a computer. By way ofillustration, both an application running on a controller and thecontroller can be a component. One or more components residing within aprocess or thread of execution and a component is localized on onecomputer or distributed between two or more computers.

Furthermore, the claimed subject matter is implemented as a method,apparatus, or article of manufacture using standard programming orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, manymodifications may be made to this configuration without departing fromthe scope or spirit of the claimed subject matter.

FIG. 10 and the following discussion provide a brief, generaldescription of a suitable computing environment to implement embodimentsof one or more of the provisions set forth herein. The operatingenvironment of FIG. 10 is only an example of a suitable operatingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the operating environment. Examplecomputing devices include, but are not limited to, personal computers,server computers, hand-held or laptop devices, mobile devices, such asmobile phones, Personal Digital Assistants (PDAs), media players, andthe like, multiprocessor systems, consumer electronics, mini computers,mainframe computers, distributed computing environments that include anyof the above systems or devices, and the like.

Generally, embodiments are described in the general context of “computerreadable instructions” being executed by one or more computing devices.Computer readable instructions are distributed via computer readablemedia as will be discussed below. Computer readable instructions areimplemented as program modules, such as functions, objects, ApplicationProgramming Interfaces (APIs), data structures, and the like, thatperform particular tasks or implement particular abstract data types.Typically, the functionality of the computer readable instructions arecombined or distributed as desired in various environments.

FIG. 10 illustrates an example of a system 1000 comprising a computingdevice 1012 configured to implement one or more embodiments providedherein. In one configuration, computing device 1012 includes at leastone processing unit 1016 and memory 1018. In some embodiments, dependingon the exact configuration and type of computing device, memory 1018 isvolatile, such as RAM, non-volatile, such as ROM, flash memory, etc., orsome combination of the two. This configuration is illustrated in FIG.10 by dashed line 1014.

In other embodiments, device 1012 includes additional features orfunctionality. For example, device 1012 also includes additional storagesuch as removable storage or non-removable storage, including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 10 by storage 1020. In someembodiments, computer readable instructions to implement one or moreembodiments provided herein are in storage 1020. Storage 1020 alsostores other computer readable instructions to implement an operatingsystem, an application program, and the like. Computer readableinstructions are loaded in memory 1018 for execution by processing unit1016, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 1018 and storage 1020 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 1012. Anysuch computer storage media is part of device 1012.

The term “computer readable media” includes communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” includes a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 1012 includes input device(s) 1024 such as keyboard, mouse, pen,voice input device, touch input device, infrared cameras, video inputdevices, or any other input device. Output device(s) 1022 such as one ormore displays, speakers, printers, or any other output device are alsoincluded in device 1012. Input device(s) 1024 and output device(s) 1022are connected to device 1012 via a wired connection, wirelessconnection, or any combination thereof. In some embodiments, an inputdevice or an output device from another computing device are used asinput device(s) 1024 or output device(s) 1022 for computing device 1012.Device 1012 also includes communication connection(s) 1026 to facilitatecommunications with one or more other devices.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter of the appended claims is not necessarilylimited to the specific features or acts described above. Rather, thespecific features and acts described above are disclosed as exampleforms of implementing the claims.

Various operations of embodiments are provided herein. The order inwhich some or all of the operations are described should not beconstrued as to imply that these operations are necessarily orderdependent. Alternative ordering will be appreciated by one skilled inthe art having the benefit of this description. Further, it will beunderstood that not all operations are necessarily present in eachembodiment provided herein.

It will be appreciated that layers, features, elements, etc. depictedherein are illustrated with particular dimensions relative to oneanother, such as structural dimensions and/or orientations, for example,for purposes of simplicity and ease of understanding and that actualdimensions of the same differ substantially from that illustratedherein, in some embodiments.

Further, unless specified otherwise, “first,” “second,” or the like arenot intended to imply a temporal aspect, a spatial aspect, an ordering,etc. Rather, such terms are merely used as identifiers, names, etc. forfeatures, elements, items, etc. For example, a first object and a secondobject generally correspond to object A and object B or two different ortwo identical objects or the same object.

Moreover, “exemplary” is used herein to mean serving as an example,instance, illustration, etc., and not necessarily as advantageous. Asused in this application, “or” is intended to mean an inclusive “or”rather than an exclusive “or”. In addition, “a” and “an” as used in thisapplication are generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Also, at least one of A and B and/or the like generally means A orB or both A and B. Furthermore, to the extent that “includes”, “having”,“has”, “with”, or variants thereof are used in either the detaileddescription or the claims, such terms are intended to be inclusive in amanner similar to the term “comprising”.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims.

What is claimed is:
 1. A method for defining transition zones fornavigating a visualization of a scene, comprising: projecting a firsttexture image and a second texture image onto a geometry of a scene tocreate a textured geometry of the scene; determining an error basin fora transition space between the first texture image and the secondtexture image based upon a visual error measurement, the transitionspace based upon the textured geometry; defining a first transition zonewithin the transition space based upon one or more first translatedviews being below an error threshold within the error basin, the firsttransition zone specifying a first translated view experience for theone or more first translated views; and defining a second transitionzone within the transition space based upon one or more secondtranslated views being above the error threshold within the error basin,the second transition zone defining a second translated view experiencefor the one or more second translated views.
 2. The method of claim 1,the visual error measurement comprising at least one of: an inaccurategeometry measurement; a resolution fallout measurement; a pixelocclusion measurement; or a color difference measurement.
 3. The methodof claim 1, the first translated view experience specifying unrestrictednavigation movement for the one or more first translated views withinthe first transition zone.
 4. The method of claim 1, the secondtranslated view experience specifying restricted navigation movement forthe one or more second translated views within the second transitionzone, the restricted navigation movement corresponding to a snapbackforce from a current view position to at least one of the first textureimage, the second texture image, or the first transition zone.
 5. Themethod of claim 1, at least one of the first texture image or the secondtexture image comprising at least one of: a panorama image; a photoimage; a generated image; or an orthographic image from an aerialviewpoint.
 6. The method of claim 1, comprising: generating a graphrepresenting one or more texture images available to texture thegeometry, the graph comprising a first node representing the firsttexture image, a second node representing the second texture image, anda transitional edge between the first node and the second node, thetransitional edge corresponding to the transition space.
 7. The methodof claim 6, the determining an error basin comprising: obtaining a firstimage feature of a first rendered view of the scene at a first pointalong the transitional edge, the first rendered view based upon thetextured geometry; obtaining a second image feature of a second renderedview of the scene at a second point along the transitional edge, thesecond rendered view based upon the textured geometry; and determiningthe visual error measurement based upon a comparison of the first imagefeature of the first rendered view to the second image feature of thesecond rendered view.
 8. The method of claim 1, comprising: generating aconfidence mask comprising one or more pixel confidences, a first pixelconfidence of a first geometry pixel specifying a confidence that anobject, associated with the first geometry pixel, is represented in boththe first texture image and the second texture image.
 9. The method ofclaim 8, comprising: responsive to the first pixel confidence beingbelow a confidence threshold: determining that the first geometry pixelcorresponds to a transient occluder; and modifying the first geometrypixel based upon at least one of a blending technique, an inpainttechnique, a shading technique, or a fadeout technique.
 10. The methodof claim 1, comprising: generating a first color model for the firsttexture image and a second color model for the second texture image; andestablishing a color relationship between the first texture image andthe second texture image based upon the first color model and the secondcolor model.
 11. The method of claim 10, comprising: blending color fromthe first texture image and the second texture image based upon thecolor relationship to create a current translated view of the scene. 12.The method of claim 1, comprising: providing an interactive navigationexperience of the scene through one or more current views, the one ormore current views comprising a current translated view provided basedupon the first translated view experience or the second translated viewexperience.
 13. The method of claim 1, comprising: defining one or moreadditional transition zones based upon the error basin.
 14. A system fordefining transition zones for navigating a visualization of a scene,comprising: an error estimation component configured to: project a firsttexture image and a second texture image onto a geometry of a scene tocreate a textured geometry of the scene; and determine an error basinfor a transition space between the first texture image and the secondtexture image based upon a visual error measurement, the transitionspace based upon the textured geometry; and a zone definition componentconfigured to: define a first transition zone within the transitionspace based upon one or more first translated views being below an errorthreshold within the error basin, the first transition zone specifying afirst translated view experience for the one or more first translatedviews; and define a second transition zone within the transition spacebased upon one or more second translated views being above the errorthreshold within the error basin, the second transition zone defining asecond translated view experience for the one or more second translatedviews.
 15. The system of claim 14, comprising: a color model componentconfigured to: generate a first color model for the first texture imageand a second color model for the second texture image; and establish acolor relationship between the first texture image and the secondtexture image based upon the first color model and the second colormodel.
 16. The system of claim 15, the color model component configuredto: blend color from the first texture image and the second textureimage based upon the color relationship to create a current translatedview of the scene.
 17. The system of claim 14, comprising: a confidencemask component configured to: generate a confidence mask comprising oneor more pixel confidences, a first pixel confidence of a first geometrypixel specifying a confidence that an object, associated with the firstgeometry pixel, is represented in both the first texture image and thesecond texture image.
 18. The system of claim 17, the confidence maskcomponent configured to: responsive to the first pixel confidence beingbelow a confidence threshold: determine that the first geometry pixelcorresponds to a transient occluder; and modify the first geometry pixelbased upon at least one of a blending technique, an inpaint technique, ashading technique, or a fadeout technique.
 19. The system of claim 14,comprising: a graph component configured to: generate a graphrepresenting one or more texture images available to texture thegeometry, the graph comprising a first node representing the firsttexture image, a second node representing the second texture image, anda transitional edge between the first node and the second node, thetransitional edge corresponding to the transition space.
 20. A computerreadable medium comprising instructions which when executed at least inpart via a processing unit perform a method for filling an untexturedvisualization portion of a visualization, comprising: projecting one ormore texture images onto a geometry of a scene to create a texturedgeometry of the scene, the textured geometry comprising an untexturedgeometry portion not depicted by at least one of the one or more textureimages; generating a visualization of the scene based upon the texturedgeometry, the visualization comprising an untextured visualizationportion corresponding to the untextured geometry portion; and fillingthe untextured visualization portion based upon at least one of: lowresolution imagery depicting a portion of the scene corresponding to theuntextured visualization portion; an expansion of a neighboring pixelregion corresponding to a textured visualization portion; or a circularimage transition window configured to transition a current view to atexture image.